@Ineverleft
4年前 提问
1个回答

网络爬虫怎么加代理

上官雨宝
4年前

requests调用代理

  import requests

  proxy='123.58.10.36:8080' #本地代理

  #proxy='username:password@123.58.10.36:8080'

  proxies={

  'http':'http://'+proxy,

  'https':'https://'+proxy

  }

  try:

  response=requests.get('http://httpbin.org/get',proxies=proxies)

  print(response.text)

  except requests.exceptions.ConnectionError as e:

  print('错误:',e.args)

Selenium调用代理
selenium加上代理,selenium主要是实现自动化登录验证等操作

from selenium import webdriver
proxy='123.58.10.36:8080'
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server=http://'+proxy)
browser=webdriver.Chrome(chrome_options=chrome_options)
browser.get('http://httpbin.org/get')

调用 ProxyHandler 添加 代理

from urllib import request

url = 'www.baidu.com'

# 设置代理
handler = request.ProxyHandler({'http':'ip:port'})
opener = request.bulid_opener(handler)

# 发送请求
req = request.Request(url=url)
response = opener.open(req)

在 scrapy下载中间件添加代理
middlewares.py 自定义一个代理类,重写 process_request 方法

class MyDaiLi(object):
  """docstring for MyDaiLi"""
   # 重写这个方法
   def process_request(self, request, spider):
         request.meta['proxy'] = 'http://ip:port'

settings.py (第55行)打开下载中间件,并将自定义的 MyDaiLi添加进去

DOWNLOADER_MIDDLEWARES = {   'daili_loginproject.middlewares.MyDaiLi': 543,
 }